package pe.gob.bcrp.sgci.gestion.reportes.svc.operativos;

import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Vector;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import pe.gob.bcrp.sgci.gestion.reportes.util.DateUtil;
import pe.gob.bcrp.sgci.gestion.reportes.model.dao.impl.operativos.ReporteVersionFichaContableDAOImpl;
import pe.gob.bcrp.sgci.gestion.reportes.model.dao.impl.operativos.ReporteVersionFichaContableDetalleDAOImpl;
import pe.gob.bcrp.sgci.gestion.reportes.model.dao.operativos.ReporteVersionFichaContableDAO;
import pe.gob.bcrp.sgci.gestion.reportes.model.dao.operativos.ReporteVersionFichaContableDetalleDAO;
import pe.gob.bcrp.sgci.gestion.reportes.model.entity.operativos.ReporteVersionFichaContable;
import pe.gob.bcrp.sgci.gestion.reportes.model.entity.operativos.ReporteVersionFichaContableDetalle;

@Stateless
public class FichaContableSvc {
	
	@EJB
	ReporteVersionFichaContableDAO reporteVersionFichaContableDAO;
	
	@EJB
	ReporteVersionFichaContableDetalleDAO reporteVersionFichaContableDetalleDAO;
	
	/*public Vector<ReporteVersionFichaContableDetalle> buscarPorFechas(String desde, String hasta){
		
		String formato = DateUtil.FORMATO_FECHA_YYYY_MM_DD;
		Date desdeDate = DateUtil.stringToDate(desde, formato);
		Date hastaDate = DateUtil.stringToDate(hasta, formato);
		
		LibMayorDAO libMayorDAO = new LibMayorDAOImpl();
		Vector<LibMayor> vectorLibMayor = (Vector<LibMayor>) libMayorDAO.findByDate(desdeDate, hastaDate);
		
		return vectorLibMayor;
	}*/
	
	public Vector<ReporteVersionFichaContableDetalle> buscar(int codigo){
		BigDecimal cod = new BigDecimal(codigo);
		reporteVersionFichaContableDAO = new ReporteVersionFichaContableDAOImpl();
		
		ReporteVersionFichaContable repVerLibDia = reporteVersionFichaContableDAO.findById(cod);
		
		Object[] arrObject = repVerLibDia.getRepVerFichaContDetList().toArray();
        List list = Arrays.asList(arrObject);
        Vector vector = new Vector(list);
		
		return vector;
	}
	
	public ReporteVersionFichaContable buscarRepVerFichaContable(int codigo){
		BigDecimal cod = new BigDecimal(codigo);
		reporteVersionFichaContableDAO = new ReporteVersionFichaContableDAOImpl();
		
		ReporteVersionFichaContable repVerFichaContable = reporteVersionFichaContableDAO.findById(cod);
		
		return repVerFichaContable ;
	}
	
	public Vector<ReporteVersionFichaContableDetalle> buscarTodos(){
		reporteVersionFichaContableDetalleDAO = new ReporteVersionFichaContableDetalleDAOImpl();
		return (Vector<ReporteVersionFichaContableDetalle>) reporteVersionFichaContableDetalleDAO.findAll();
	}
	
	public long createNuevoReporteVersionFichaContable(){
		reporteVersionFichaContableDAO = new ReporteVersionFichaContableDAOImpl();
		return reporteVersionFichaContableDAO.createNuevoReporteVersionFichaContable("1", new BigDecimal("1"));
	}
	
	public static void main(String[] args) {
		FichaContableSvc l = new FichaContableSvc();
		System.out.println("->ENTRA");
		try{
			ReporteVersionFichaContable repVerFichaContable = l.buscarRepVerFichaContable( 6 );
			System.out.println("----------DATOS");
			System.out.println(repVerFichaContable.getFecProceso());
			System.out.println(repVerFichaContable.getReporteVersion().getFecProceso());
			System.out.println(repVerFichaContable.getReporteVersion().getFecProcesoFormateada());
			System.out.println(repVerFichaContable.getReporteVersion().getHoraProcesoFormateada());
			System.out.println("->TERMIN O!!");
		}catch(Exception e){
			System.out.println("GG: "+ e);
		}
		System.out.println("HABLAMOS");
	}	
}
